#include"game.h"

void csboard(char board[ROW][COL],int row,int col)
{
    int i=0;
    int j=0;
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
        {
           board[i][j]=' ';
        }
    }

}


//打印 %c | %c | %c 
//打印 ---|---|---
void pboard(char board[ROW][COL],int row,int col)
{
   int i=0;
   int j=0;
   for(i=0;i<row;i++)
   {
       for(j=0;j<col;j++)
         {
             printf(" %c ",board[i][j]);
          if(j<col-1)
            {
            printf("|");
            }
          }
              printf("\n");
       if(i<row-1)
         {
             for(j=0;j<col;j++)
               {
                  printf("---");
                 if(j<col-1)
                    printf("|");
 
               }
            printf("\n");
        }
    
   }
}

//实现玩家下棋
void playermove(char board[ROW][COL],int row,int col)
{
 while(1)
    {
     printf("请玩家输入坐标\n");
    int x=0;
    int y=0;
    scanf("%d %d",&x,&y);
     if(x>=1 && x<=row && y>=1 && y<=col)
       {
        if(board[x-1][y-1]==' ')
           {
             board[x-1][y-1]='*';
              break;
           }
         else
            printf("该位置已被占用，请重新输入\n");
       }
     else
        printf("输入非法，请重新输入\n");
     }
}

//电脑下棋
void computermove(char board[ROW][COL],int row,int col)
{
    printf("电脑输入\n");
          srand((unsigned int)time(NULL));
    int x=0;
    int y=0;
    while(1)
    {
        x=rand()%row;
        y=rand()%col;
       if(board[x][y]==' ')
      {
        board[x][y]='#';
         break;
      }
    }
    
}

//玩家赢---"*"
//电脑赢---"#"
//平局--"Q"
//继续--"c"

int isfull(char board[ROW][COL],int row,int col)
{
   for(int i=0;i<row;i++)
   {
      for(int j=0;j<col;j++)
      {
         if(board[i][j]==' ')
            return 0;
     }
   }
   return 1;
}






char iswin(char board[ROW][COL],int row,int col)
{
   //行的判断
   for(int i=0;i<row;i++)
   {
      if(board[i][0]==board[i][1] && board[i][1]==board[i][2] &&board[i][0]!=' ')
      {
         return board[i][0];
         break;
      }
   }

   //列的判断
   for(int j=0;j<col;j++)
   {
      if(board[0][j]==board[1][j]&&board[1][j]==board[2][j]&&board[0][j]!=' ')
      {
         return board[0][j];
         break;
      }
   }

   //对角线的判断
   if(board[0][0]==board[1][1]&&board[1][1]==board[2][2]&&board[0][0]!=' ')
   {
      return board[0][0];
   }
   if(board[0][2]==board[1][1]&&board[1][1]==board[2][0]&&board[2][0]!=' ')
   {
      return board[2][0];
   }
   

   //判断平局，检验期盼是否排满
   if(isfull(board,row,col))
   {
      return 'Q';
   }

   //继续游戏
   return 'c';
}